// 化环为链
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  int n, q;
  cin >> n >> q;
  vector<ll> a(n);
  vector<ll> s(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  s[0] = a[0];
  for (int i = 1; i < n; i++) {
    s[i] = s[i - 1] + a[i]; // 前缀和
  }
  int head = 0;
  for (int i = 1; i <= q; i++) {
    int op;
    cin >> op;
    if (op == 1) {
      int c;
      cin >> c;
      head = (head + c) % n; // 环装数组的处理

    } else {
      int l, r;
      cin >> l >> r;
      l--, r--;
      l = (l + head + n) % n;
      r = (r + head + n) % n;
      if (l <= r) {
        if (l == 0) { // 原来bug在这里
          cout << s[r] << endl;
        } else {
          cout << s[r] - s[l - 1] << endl;
        }
      } else {
        if (l == 0) { // 原来bug在这里
          cout << s[r] + s[n - 1] << endl;
        } else {
          cout << s[r] + s[n - 1] - s[l - 1] << endl;
        }
      }
    }
  }
  return 0;
}